package com.cqupt.utils;
import java.io.File;
import java.util.*;

import com.cqupt.pojo.Problem;
import com.cqupt.service.impl.ItemServiceImpl;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class XmlUtils {
    public static Set<Problem> analysisXML(){
        try {
            ///*
            // * 根据需求要求进行排序
            // *
            // */
            //Set<Problem> list = new TreeSet<>(new Comparator<Problem>() {
            //
            //    public int compare(Problem o1, Problem o2) {
            //        if(o1.getPrice() > o2.getPrice()) {
            //            return 1;
            //        }else if(o1.getPrice() < o2.getPrice()) {
            //            return -1;
            //        }else {
            //
            //            return 0;
            //        }
            //    }
            //
            //});


            SAXReader reader = new SAXReader();
            //(2)加载需要解析文件
            String path = ItemServiceImpl.class.getClassLoader().getResource("problemDes.xml").getPath();
            File file=new File(path);
            Document document = reader.read(file);
            Element element = document.getRootElement();

            /*
             * 用一个集合接收Element中的数据
             * 方便后续操作
             */
            List<Element> childElement = element.elements();
            Set<Problem> list = new HashSet<>();
            for(Element element2 : childElement) {
                /*
                 * 获取标签文本内容
                 * getTestTrim()方法是返回一个String类型的数据
                 * 并且去除多余的空格
                 */
                String name = element2.element("name").getTextTrim();
                String commonKey = element2.element("commonKey").getTextTrim();
                String comment = element2.element("comment").getTextTrim();


                //String id = element2.attributeValue("isbn");
                String type= element2.attributeValue("type");

                Problem book = new Problem(name,commonKey,comment);


                list.add(book);

            }
            return list;
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 从配置文件中读取信息
     * @return
     */
    public static List<Map<String, Object>> analysisXMLCommunity(){
        try {
            SAXReader reader = new SAXReader();
            // 加载需要解析文件
            String path = ItemServiceImpl.class.getClassLoader().getResource("communityXML.xml").getPath();
            File file=new File(path);
            Document document = reader.read(file);
            Element element = document.getRootElement();
            // 用一个集合接收Element中的数据方便后续操作
            List<Element> childElement = element.elements();
            List<Map<String, Object>> list = new ArrayList<>();
            for(Element element2 : childElement) {
                /*
                 * 获取标签文本内容
                 * getTestTrim()方法是返回一个String类型的数据
                 * 并且去除多余的空格
                 */
                String name = element2.element("Name").getTextTrim();
                String community = element2.element("Community").getTextTrim();
                Map<String, Object> resMap = new HashMap<>();
                resMap.put("name",name);
                resMap.put("community",community);
                list.add(resMap);
            }
                return list;
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
            return null;
        }
}
